#include<bits/stdc++.h>
using namespace std;

bool vis[60][60];
int a[60][60];
int dp[55][55][55][55];

int main()
{
	int m, n;
	cin>>m>>n;
	for(int i = 1;i <= m;i++)
		for(int j = 1;j <= n;j++)
			cin>>a[i][j];
	for(int i = 1;i <= m;i++)
		for(int j = 1;j <= n;j++)
			for(int k = 1;k <= m;k++)
				for(int l = 1;l <= n;l++)
				{
					int f1 = max(dp[i-1][j][k-1][l], dp[i][j-1][k-1][l]);
					int f2 = max(dp[i-1][j][k][l-1], dp[i][j-1][k][l-1]);
					dp[i][j][k][l] = max(f1, f2)+a[i][j];
					if(i != k && j != l)
						dp[i][j][k][l] += a[k][l];
				}
	cout<<dp[m][n][m][n];
    return 0;
}

